/** @type {import('vite').UserConfig} */
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
import legacy from '@vitejs/plugin-legacy'

// https://vitejs.dev/config/
export default defineConfig({
  base: '/inspector-admin',
  plugins: [
    vue(),
    vueDevTools(),
    legacy({
      targets: ['defaults', 'not IE 11'],
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
      '@screen': fileURLToPath(
        new URL('./src/views/big-screen', import.meta.url),
      ),
    },
  },
  server: {
    host: true, // 监听所有地址，包括局域网和公网地址
    port: 5882, // 设置服务端口号
    proxy: {
      // 注意：
      // 以下的跨域配置仅在开发环境中生效。
      '/supervision-api': {
        target: 'http://localhost:8092/dflc/supervising',
        // target: 'http://1.14.33.174/supervision-api',
        changeOrigin: true,
        ws: true,
        rewrite: (path) => path.replace(/^\/supervision-api/, ''),
      },
    },
  },
  // 指定传递给 CSS 预处理器的选项。
  css: {
    preprocessorMaxWorkers: true,
    preprocessorOptions: {
      scss: {
        api: 'modern-compiler', // Vite 推荐使用 sass-embedded 包并设置 api: "modern-compiler"
        additionalData: `@use "@screen/css/util.scss" as *;`,
      },
    },
  },
  build: {
    cssTarget: 'chrome61', // 如果微信中css颜色显示存在异常，请打开此选项尝试
    minify: 'terser', // 使用 Terser 压缩代码
    terserOptions: {
      compress: {
        drop_console: true,
        drop_debugger: true,
      },
    },
    rollupOptions: {
      output: {
        // 最小化拆分包
        manualChunks(id) {
          if (id.includes('node_modules')) {
            return id
              .toString()
              .split('node_modules/')[1]
              .split('/')[0]
              .toString()
          }
        },
      },
    },
  },
})
